package com.itheima.mapper;

import com.github.pagehelper.Page;
import com.itheima.domain.Permission;

import java.util.List;
import java.util.Set;

public interface PermissionMapper {
    Set<Permission> findByRoleId(Integer roleId);

    //分页查询
    Page<Permission> selectByCondition(String queryString);

    //新增权限项
    void add(Permission permission);

    //根据id查询权限项信息
    Permission findById(Integer id);

    //编辑权限项
    void edit(Permission permission);

    //根据Id查询对应数据的个数
    Integer findByPermissionId(Integer id);

    //根据id删除权限项
    void delete(Integer id);

    //查询所有
    List<Permission> findAll();

    //根据权限名查询数据库是否该权限已存在
    Permission findByName(String name);

    //根据权限关键字查询数据库是否该权限已存在
    Permission findByKeyword(String keyword);

    //根据权限id查询关联数据的数量
    Integer findCountByPermissionId(Integer permissionId);

    //根据权限id删除中间表数据（清理原有关联关系）
    void deleteRoleIds(Integer id);

    //查询所有权限排除自己
    List<Permission> findAllExOwn(Integer id);
}
